package com.ruoyi.team.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 合同信息对象 contract
 *
 * @author shier
 * @date 2022-11-27
 */
@Getter
@Setter
@ToString
@TableName("contract")
public class Contract extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 待审核(等待审核) */
    public static final Integer CONTRACT_AUDIT_STATUS_AWAIT     = 0;
    /** 审核通过 */
    public static final Integer CONTRACT_AUDIT_STATUS_SUCCESS   = 1;
    /** 审核不通过 */
    public static final Integer CONTRACT_AUDIT_STATUS_NO_PASSED = -1;

    /** 盖章确认: 是 */
    public static final Integer IS_AFFIXSEALSTATE_TRUE = 1;
    /** 盖章确认: 否 */
    public static final Integer IS_AFFIXSEALSTATE_FALSE = 0;

    /** 作废: 是 */
    public static final Integer IS_NULLIFYSTATE_TRUE = -1;
    /** 作废; 再用 */
    public static final Integer IS_NULLIFYSTATE_FALSE = 0;

    @TableId(type = IdType.AUTO)
    private String id;

    /** 客户id */
    private Long customerId;
    /** 客户名 */
    @TableField(exist = false)
    private String customerName;

    /** 合同名称 */
    private String contractName;

    /** 合同编码 */
    private String contractCode;

    /** 合同金额 */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal amounts;

    /** 合同生效开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    /** 合同生效结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /** 附件 */
    private String appendix;

    /** 是否盖章确认 0 否 1 是 */
    private Integer affixSealState;

    /** 审核状态 0 未审核 1 审核通过 -1 审核不通过 */
    private Integer auditState;

    /** 是否作废 -1 作废 0 在用 */
    private Integer nullifyState;

    /** 录入人 */
    private Long inputUser;
    /** 录入人名字 */
    @TableField(exist = false)
    private String inputUserName;

    /** 录入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inputTime;
}
